});
this.child = this._box;
- this._items = {};
+ this._items = new Map();
}
vfunc_key_focus_in() {
}
_moveFocusToItems() {
- let hasItems = Object.keys(this._items).length > 0;
+ const hasItems = this._items.size > 0;
if (!hasItems)
return;
else
this._box.remove_style_pseudo_class('expanded');
- for (let userName in this._items) {
- let item = this._items[userName];
+ for (const item of this._items.values())
item.sync_hover();
- }
}
scrollToItem(item) {
}
getItemFromUserName(userName) {
- let item = this._items[userName];
+ const item = this._items.get(userName);
if (!item)
return null;
}
containsUser(user) {
- return this._items[user.get_user_name()] != null;
+ return this._items.has(user.get_user_name());
}
addUser(user) {
let item = new UserListItem(user);
this._box.add_child(item);
- this._items[userName] = item;
+ this._items.set(userName, item);
item.connect('activate', this._onItemActivated.bind(this));
if (!userName)
return;
- let item = this._items[userName];
+ const item = this._items.get(userName);
if (!item)
return;
item.destroy();
- delete this._items[userName];
+ this._items.delete(userName);
}
numItems() {
- return Object.keys(this._items).length;
+ return this._items.size;
}
});
this._button.connect('clicked', () => this._menu.toggle());
- this._items = {};
+ this._items = new Map();
this._activeSessionId = null;
this._populate();
}
}
_updateOrnament() {
- let itemIds = Object.keys(this._items);
- for (let i = 0; i < itemIds.length; i++) {
- if (itemIds[i] === this._activeSessionId)
- this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.DOT);
+ for (const itemId of this._items.keys()) {
+ if (itemId === this._activeSessionId)
+ this._items.get(itemId).setOrnament(PopupMenu.Ornament.DOT);
else
- this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.NO_DOT);
+ this._items.get(itemId).setOrnament(PopupMenu.Ornament.NO_DOT);
}
}
let id = ids[i];
let item = new PopupMenu.PopupMenuItem(sessionName);
this._menu.addMenuItem(item);
- this._items[id] = item;
+ this._items.set(id, item);
item.connect('activate', () => {
this.setActiveSession(id);